package com.salelogistics.sale.mapper;

import java.math.BigDecimal;
import java.util.List;

import com.salelogistics.sale.domain.SmsBatchPlanDetails;
import com.salelogistics.sale.domain.dto.DeliveryPlanDetailsDto;
import org.apache.ibatis.annotations.Param;

/**
 * 批次计划的详细材料信息Mapper接口
 *
 * @author Hu Kangying
 * @date 2023-07-27
 */
public interface SmsBatchPlanDetailsMapper {

    BigDecimal querySuppliedWithBatchId(Long batchId);

    /**
     * 查询批次计划的详细材料信息
     *
     * @param id 批次计划的详细材料信息主键
     * @return 批次计划的详细材料信息
     */
    public SmsBatchPlanDetails selectSmsBatchPlanDetailsById(Long id);

    /**
     * 查询批次计划的详细材料信息列表
     *
     * @param smsBatchPlanDetails 批次计划的详细材料信息
     * @return 批次计划的详细材料信息集合
     */
    public List<SmsBatchPlanDetails> selectSmsBatchPlanDetailsList(SmsBatchPlanDetails smsBatchPlanDetails);

    /**
     * 新增批次计划的详细材料信息
     *
     * @param smsBatchPlanDetails 批次计划的详细材料信息
     * @return 结果
     */
    public int insertSmsBatchPlanDetails(SmsBatchPlanDetails smsBatchPlanDetails);

    /**
     * 修改批次计划的详细材料信息
     *
     * @param smsBatchPlanDetails 批次计划的详细材料信息
     * @return 结果
     */
    public int updateSmsBatchPlanDetails(SmsBatchPlanDetails smsBatchPlanDetails);

    /**
     * 删除批次计划的详细材料信息
     *
     * @param id 批次计划的详细材料信息主键
     * @return 结果
     */
    public int deleteSmsBatchPlanDetailsById(Long id);

    /**
     * 批量删除批次计划的详细材料信息
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSmsBatchPlanDetailsByIds(Long[] ids);

    List<DeliveryPlanDetailsDto> selectBatchDetailsByBatchId
            (@Param("batchId") Long batchId);
}
